//
//  LLBaseTableViewController.swift
//  LLWeibo09
//
//  Created by 林 on 16/3/27.
//  Copyright © 2016年 lin. All rights reserved.
//

import UIKit

class LLBaseTableViewController: UITableViewController {

 /// 用户是否登录
    var userLogin = LLUserAccountViewModel.shareInstance.userLogin
    
    override func loadView() {
        userLogin ? super.loadView() : setupVisitorView()
    }

    func setupVisitorView() {
        view = visitorView
        
        // 设置访客视图代理 
        // 当设置代理后,必须实现代理协议
        // 5.设置代理
        visitorView.delegate = self
        
        // 在这里根据不同的控制器类型来设置不同的访客视图内容
        // is: 判断对象是否是某个类型
        if (self is LLHomeViewController) {
            visitorView.startRotation()
        } else if (self is LLMessageViewController) {
            visitorView.setupVisitor("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        } else if (self is LLDiscoverViewController) {
            visitorView.setupVisitor("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        } else if (self is LLProfileViewController) {
            visitorView.setupVisitor("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        // 导航栏的按钮,不是根据导航控制器来的,根导航控制器当前正在显示的子控制器相关
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidClickRegisterButton")
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登陆", style: UIBarButtonItemStyle.Plain, target: self, action: "visitorViewDidClickLoginButton")
        
    }
    
    // MARK: - 懒加载 
    private lazy var visitorView: LLVisitorView = LLVisitorView()
}

// MARK: - extension扩展,可以在扩展里面实现协议,方便代码管理
extension LLBaseTableViewController: LLVisitorViewDelegate {
    // 扩展里面不能存放存储型属性
    // var name: String?   ==> OC NSString *_name
    
    // 扩展里面可以存放计算性属性
    var name: String {
        get {
            return ""
        }
        
        set {
            
        }
    }
    
    // MARK: - 实现协议的方法
    // 6.实现协议的方法
    func visitorViewDidClickRegisterButton() {
  
    }
    
    func visitorViewDidClickLoginButton() {
     // 弹出登陆界面
        let oauthVC = LLOauthViewController()
        
        // Modal出控制器
        presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)

    }
    
}
